# -*- coding: utf-8 -*-
"""
Created on Mon Aug 21 07:24:26 2023

@author: skunk69
"""

import json

chinese_name = u'消极完美主义问卷'
english_name = 'Zi’s Negative Perfectionism Questionnaire'
abbreviation = 'ZNPQ'
category = u'人生价值、态度量表'

outline = u"""消极完美主义问卷(Zi's negative perfectionism questionnaire, ZNPQ)是由訾非于2007年编制，用来测量消极完美主义者的认知、行为和情绪特征。它借鉴了Frost多维度完美主义问卷，以中国大学生人群为样本，从概念定义到条目的确定都实现了本土化。"""

instruction = u"""下面有一些陈述，请根据它们对您的生活、想法和行为的描写的符合程度，在“不符合”、“有点不符合”、“不能确定”、“有点符合”和“符合”中选择一项。"""

with open('ZNPQ.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines[::6]:
    key,value = line.strip().split('.',maxsplit=1)
    items[key.strip()] = value.strip()

reverse_items = [1,13,27,31,37]
scales = [u'极高目标和标准',u'害怕失败',u'犹豫迟疑',u'过度计划和控制',u'过度谨慎和仔细']
scales_items = [
    [3,7,17,21,25,32],# 极高目标和标准
    [8,12,15,19,23,30,36],# 害怕失败
    [1,4,9,13,16,20,27,31,34,37],# 犹豫迟疑
    [2,6,10,22,28,35],# 过度计划和控制
    [5,11,14,18,24,26,29,33,38],# 过度谨慎和仔细
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,39)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'不符合',u'有点不符合',u'不能确定',u'有点符合',u'符合']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《消极完美主义问卷》是一个自评量表。"""

reliability = u"""问卷初步编制时选取4所大学411名大学生（男生210人，女生201人），年龄20士2岁。
正式问卷样本取自4所大学共427名大学生（男生227人，女生200人），年龄20±2岁。
5个维度内部一致性系数（Cronbacha α）分别为0.75，0.78，0.82，0.76和0-83，分半信度分别为0.73，0.76，0.82，0.75和0.79。选取80名被试1个月后重新填写问卷，获得重测信度分别为0.79，0.75，0.78，0.61和0.81。"""
validity = u"""187名被试在填写本研究编制的问卷同时也填写了CFMPS，对2个量表进行相关分析，发现消极完美主义问卷总分与CFMPS总分有很强的相关（Pearsonr=0.79,P<0.01）。问卷各维度与CFMPS总分也有中等以上程度的相关（r=0.39~0.76,P<0.01）。另外，消极完美主义问卷的犹豫迟疑维度与CFMPS的行动的迟疑维度，害怕失败与CFMPS的担心错误，极高目标和标准与CFMPS的个人标准也各有强相关（r分别为0.65，0.89和0.78，P<0.01），说明它们测量类似的概念。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""各维度释义如下：
（1）极高目标和标准，反映完美主义者指向极高的、理想主义的、不切实际的目标和标准的动机倾向。
（2）害怕失败，反映完美主义者对失败的恐惧，以及即使发生很小的错误和失败也会体验到灾难感的心理特点。
（3）犹豫迟疑，测量完美主义者做事犹豫不决、拖延、不善于处理意外事件等特征。
（4）过度计划和控制，测量完美主义者过分追求计划性、秩序和可控性，要求事情必须按自我的期望发展的动机倾向。
（5）过度谨慎和仔细，反映完美主义者过度谨慎，过于追求精确和注重细节的心理特点。
对问卷中反向条目反向记分之后，把所有38个条目得分求和即为问卷总分。"""

applications = u"""本研究所编制的消极完美主义问卷具有较好的心理测量学特性，有临床实用价值。研究表明，消极完美主义问卷总分与焦虑、抑郁、强迫心理变量有中程度的相关。分别为0.49、0.50和0.59，P<0.01），与自尊、羞怯也显著相关(r分别为-0.46和0.43,P<0.01）。另外，消极完美主义问卷总分与惧怕他人否定和对权威的畏惧感存在强相关（r分别为0.65和0.61，P<0.01）。
另一项研究发现，消极完美主义问卷与回避型和强迫型人格障碍倾向有中等程度的正相关，与其他类型的人格障碍只存在弱相关或无相关，表明本问卷在临床上检测强迫性人格障碍的可用性。
对4所大学的600名大学生（1-4年级样本数基本相同）施测本问卷，发现不同学校学生之间的得分（总分和各维度分）不存在显著差异。消极完美主义问卷男、女大学生之间的ZNPQ总分也不存在显著差异，但在过度谨慎和仔细这个维度上男生得分高于女生。
另一个研究对400位年龄在24-68岁（平均年龄33.1岁，标准差=6.6）的成年人施测本问卷。大学生样本与24-68岁成人样本在问卷总分上存在显著差异，大学生的ZNPQ总分显著高于24-68岁成人样本总分。大学生样本在犹豫迟疑、害怕失败、极高目标和标准这3个维度上也显著高于24-68岁成人样本，在过度计划和控制维度上显著低于24-68岁成人样本，在过度谨慎和仔细维度上无差异。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)